matlab中命令行中输入 p[1:2 2+1:2] 为什么结果中现实ans=1 2

来源:百度知道 编辑:UC知道 时间:2024/05/04 14:25:29
function yy = lagrange1(x,y,xx)
n = length(x);
m = length(xx);
yy = zeros(1,m);
for k = 1:n
prd = ones(size(xx));
for p = [1:k-1 k+1:n]
prd = prd.*(xx-x(p))/(x(k)-x(p));
end
yy=yy+y(k)*prd;
end
其中的p = [1:k-1 k+1:n] 什么意思啊

p[1:2 2+1:2]
语法根本就不对,你要问的是什么?

[1:k-1 k+1:n]是一个数组,也就是[1 2 3 ... k-1 k+1 ... n]
for p = [1:k-1 k+1:n]是循环,每次循环p会按数组内的值依次赋值,也就是p从1循环到n,但是跳过k

??? p[1:2 2+1:2]
|
Error: Unbalanced or misused parentheses or brackets.